home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / tpapi.exe / NETWARE.PA1 < prev    next >
Text File  |  1994-01-14  |  15KB  |  335 lines

  1. {#Z+}
  2. {(10U&l12D(s4099T&k2S*}
  3. {***************************************************************************}
  4. {** Program : NETWARE                                                     **}
  5. {***************************************************************************}
  6. {** Version : 1.4             ** Started : 11/11/91  ** Ended :   /  /    **}
  7. {***************************************************************************}
  8. {******************************** Description ******************************}
  9. {***************************************************************************}
  10. {** OOP library for Netware API.                                          **}
  11. {**                                                                       **}
  12. {** This unit forms the lowest level object : NETWARE                     **}
  13. {**                                                                       **}
  14. {**                                                                       **}
  15. {***************************************************************************}
  16. {******************************** Information ******************************}
  17. {***************************************************************************}
  18. {** This units provides all the interfaces to the network shells and many **}
  19. {** misc routines.                                                        **}
  20. {**                                                                       **}
  21. {**                                                                       **}
  22. {**                                                                       **}
  23. {** This code is (c) 1991 - 1994 Antonio Covelli. ALL RIGHTS RESERVED.    **}
  24. {** Portions (c) Novell Inc,                                              **}
  25. {**                                                                       **}
  26. {**                                                                       **}
  27. {***************************************************************************}
  28.  
  29. {$I NETWARE.INC}
  30. {#Z-}
  31.  
  32. UNIT NETWARE;
  33.  
  34. INTERFACE
  35.  
  36. USES
  37.  
  38.   {$IFDEF WINDOWS}
  39.   windos,
  40.   {$ELSE}
  41.   dos,
  42.   {$ENDIF}
  43.   nwdpmi,
  44.   nwvar;
  45.  
  46. TYPE
  47.  
  48.   TBufferName = (Request, Receive, Internal);
  49.  
  50.   PNetwareOBJ = ^NetwareOBJ;
  51.   NetwareOBJ  = OBJECT
  52.  
  53.     nwRequestBuffer : TDualPtr;
  54.     nwReceiveBuffer : TDualPtr;
  55.     nwDynamicAlloc  : boolean;
  56.     nwReqOffset     : WORD;
  57.     nwRecOffset     : WORD;
  58.  
  59.     CONSTRUCTOR Init (DynamicAllocation : boolean);
  60.  
  61.     PROCEDURE   GetWrkstnEnv                  (VersionString : pointer);
  62.  
  63.     FUNCTION    PrConnRequest                 (FunctionNumber : BYTE; ConnectionID : WORD) : WORD;
  64.  
  65.     FUNCTION    ServerRequest                 (ServerNumber : WORD; FunctionNumber, SubFunctionNumber : BYTE) : WORD;
  66.  
  67.     function    ShellRequest                  (FunctionNumber : byte; RequestBuffer, ReceiveBuffer : pointer) : word;
  68.  
  69.     FUNCTION    TableReq                      (FunctionNumber, SubFunctionNumber : BYTE; var TableAddr : pointer) : WORD;
  70.  
  71.     function    VLMTransportCall              (ConnectionHandle : word; FunctionNumber : byte;
  72.                                                RequestBufferLength : word; RequestBuffer : pointer;
  73.                                                ReceiveBufferLength : word; ReceiveBuffer : pointer) : word;
  74.  
  75.     function VLMCall (var DOSRegisters; DestinationID,
  76.                       DestinationFunction : word) : boolean;
  77.  
  78.     FUNCTION    NCPRequest                    (ConnectionHandle : word;
  79.                                                FunctionNumber : BYTE; RequestBufferLength : WORD; RequestBuffer : pointer;
  80.                                                ReceiveBufferLength : WORD; ReceiveBuffer : pointer) : WORD;
  81.  
  82.     FUNCTION    ClrRelReq                     (FunctionNumber : BYTE; Name : pointer) : WORD;
  83.  
  84.     FUNCTION    PhysRecReq                    (FunctionNumber : BYTE; Handle : WORD; ROffSet : LONGINT; RLength : LONGINT;
  85.                                                Directive : BYTE; TimeOut : WORD) : WORD;
  86.  
  87.     FUNCTION    LockReq                       (FunctionNumber, Mode : BYTE; TimeOut : WORD) : WORD;
  88.  
  89.     FUNCTION    LPTCapReq                     (FunctionNumber, Device : BYTE) : WORD;
  90.  
  91.     FUNCTION    PrnSrvRequest                 (FunctionNumber : BYTE; BufferSize : WORD; ReceiveBuffer : pointer;
  92.                                                PrinterDevice : BYTE) : WORD;
  93.  
  94.     FUNCTION    PrCapRequest                  (FunctionNumber, SubFunctionNumber : BYTE) : WORD;
  95.  
  96.     FUNCTION    IPXServiceCall                (var DOSRegisters) : boolean;
  97.  
  98.     PROCEDURE   GetConnectionIDTable;
  99.  
  100.     PROCEDURE   GetDriveConnectionID;
  101.  
  102.     PROCEDURE   GetDriveFlagTable;
  103.  
  104.     PROCEDURE   GetDriveHandleTable;
  105.  
  106.     PROCEDURE   GetFileServerNameTable;
  107.  
  108.     FUNCTION    ScanShellTable                (FileServerAddress : TServerAddress) : WORD;
  109.  
  110.     FUNCTION    GetFirstFreeSlotInShell : WORD;
  111.  
  112.     PROCEDURE   PutFileServerInShell          (ConnectionID : WORD);
  113.  
  114.     FUNCTION    NextOrderNumberInShell : WORD;
  115.  
  116.     PROCEDURE   SortShell                     (AddServerToShell : BOOLEAN);
  117.  
  118.     PROCEDURE   AddFileServerToShell          (ConnectionID : WORD; AddServerToShell : BOOLEAN;
  119.                                                FileServerAddress : TServerAddress);
  120.  
  121.     PROCEDURE   RemoveFileServerFromShell     (ConnectionID : WORD; ClearShell : BOOLEAN);
  122.  
  123.     PROCEDURE   AddToFileServerNameTable      (ConnectionID : WORD; ServerName : TObjectName);
  124.  
  125.     function    GetEncryptionKey              (var Key : TEncryptKey) : word;
  126.  
  127.     function    GetEncryptedKey               (ObjectID : OT_BinderyID; Password : TPassword;
  128.                                                var Key : TEncryptKey) : word;
  129.     {********************}
  130.     {** MISC FUNCTIONS **}
  131.     {********************}
  132.  
  133.     PROCEDURE   InitBuffer (Buffer : TDualPtr; BufferSize : word;
  134.                             BufferName : TBufferName);
  135.  
  136.     PROCEDURE   InitRequestBuffer;
  137.  
  138.     PROCEDURE   InitReceiveBuffer;
  139.  
  140.     procedure   ResetRegisters                (var DOSRegisters : registers);
  141.  
  142.     procedure   ResetRegistersDPMI            (var DOSRegisters : TRealModeRegisters);
  143.  
  144.     function    Real2Prot                     (InPointer : Pointer) : Pointer;
  145.  
  146.     PROCEDURE   AddByte                       (ByteValue : BYTE);
  147.  
  148.     PROCEDURE   AddWord                       (WordValue : WORD);
  149.  
  150.     PROCEDURE   AddWordSwap                   (WordValue : WORD);
  151.  
  152.     PROCEDURE   AddLong                       (LongValue : LONGINT);
  153.  
  154.     PROCEDURE   AddLongSwap                   (LongValue : LONGINT);
  155.  
  156.     PROCEDURE   AddArray                      (VAR Buffer; BufferLength : WORD);
  157.  
  158.     PROCEDURE   AddText                       (InputString : STRING; var Buffer; MaxLength : BYTE);
  159.  
  160.     PROCEDURE   AddPASCALString               (InputString : STRING; Start : BYTE);
  161.  
  162.     PROCEDURE   AddPASCALToASCIIZStr          (InputString : STRING; Start : BYTE);
  163.  
  164.     PROCEDURE   AddChar                       (CharValue : CHAR);
  165.  
  166.     PROCEDURE   AddFiller                     (BufferLength : WORD);
  167.  
  168.     PROCEDURE   AddTotal                      (BufferName : TBufferName; Swapped : boolean);
  169.  
  170.     PROCEDURE   GetByte                       (VAR Buffer; Location : WORD);
  171.  
  172.     PROCEDURE   GetWord                       (VAR Buffer; Location : WORD);
  173.  
  174.     PROCEDURE   GetWordSwap                   (VAR Buffer; Location : WORD);
  175.  
  176.     PROCEDURE   GetLong                       (VAR Buffer; Location : WORD);
  177.  
  178.     PROCEDURE   GetLongSwap                   (VAR Buffer; Location : WORD);
  179.  
  180.     PROCEDURE   GetArray                      (VAR Buffer; Location, BufferLength : WORD);
  181.  
  182.     PROCEDURE   GetASCIIZString               (VAR Buffer; Location, BufferLength : WORD);
  183.  
  184.     PROCEDURE   GetPASCALString               (VAR Buffer; Location, BufferLength : WORD);
  185.  
  186.     FUNCTION    GetTotal                      (BufferName : TBufferName) : WORD;
  187.  
  188.     PROCEDURE   SetTotal                      (BufferName : TBufferName; Total : WORD);
  189.  
  190.     PROCEDURE   SetStart                      (Start : WORD);
  191.  
  192.     PROCEDURE   DoWordSwap                    (BufferName : TBufferName; Location : WORD);
  193.  
  194.     PROCEDURE   DoLongSwap                    (BufferName : TBufferName; Location : WORD);
  195.  
  196.     PROCEDURE   DoMoveArray                   (BufferName : TBufferName; Source, Destination,
  197.                                                BufferLength : WORD);
  198.  
  199.     FUNCTION    WordSwap                      (InputWord : WORD) : WORD;
  200.  
  201.     FUNCTION    LongSwap                      (InputLong : LONGINT) : LONGINT;
  202.  
  203.     function    CheckNetwareShells : boolean;
  204.  
  205.     FUNCTION    CheckNetwareVersion           (MinimumVersion, MinimumSubVersion, MinimumRevision,
  206.                                                MinimumSFT, MinimumTTS : WORD) : WORD;
  207.  
  208.     FUNCTION    ReturnNetwareVersion          (VAR MinimumVersion, MinimumSubVersion, MinimumRevision,
  209.                                                MinimumSFT, MinimumTTS : WORD) : WORD;
  210.  
  211.     FUNCTION    IsV4Supported                 (ConnectionID : WORD) : WORD;
  212.  
  213.     FUNCTION    IsV3Supported                 (ConnectionID : WORD) : WORD;
  214.  
  215.     FUNCTION    IsV22Supported                (ConnectionID : WORD) : WORD;
  216.  
  217.     FUNCTION    GetSearchOrderFromDriveLetter (Path : TPathName; DriveLetter : CHAR) : WORD;
  218.  
  219.     FUNCTION    GetFileServerAddress          (ServerName : TObjectName;
  220.                                                VAR FileServerAddress : TServerAddress) : BOOLEAN;
  221.  
  222.     function    ConvertNetworkNumber          (NetworkNumber : TByte4Array) : TString8;
  223.  
  224.     function    ConvertNodeAddress            (NodeAddress : TByte6Array) : TString12;
  225.  
  226.     FUNCTION    UpperCaseNW                   (InputString : STRING) : STRING;
  227.  
  228.     FUNCTION    HexString                     (InputLong : LONGINT; Places : BYTE) : STRING;
  229.  
  230.     FUNCTION    PtrOfs                        (InPointer : POINTER; ArrayNum, ArraySize : WORD) : POINTER;
  231.  
  232.     PROCEDURE   SwapAsciiZ                    (InPPtr, InAPtr : POINTER; Len : BYTE; ToPascal : BOOLEAN);
  233.  
  234.     PROCEDURE   PtToAsciiZ                    (InPointer, Outpointer : POINTER; Len : BYTE);
  235.  
  236.     FUNCTION    LengthAsciiZ                  (VAR Buffer) : WORD;
  237.  
  238.     FUNCTION    AsciiZToStr                   (var Buffer; Max, StartPosition : WORD) : STRING;
  239.  
  240.     PROCEDURE   StrToAsciiZ                   (InputString : STRING; VAR OutputAsciiZ);
  241.  
  242.     FUNCTION    IntToStr                      (InputNumber : LONGINT) : STRING;
  243.  
  244.     function    StrToInt                      (InputString : string) : longint;
  245.  
  246.     FUNCTION    ConvertDirectoryHandle        (ConnectionID : WORD; OldDirectoryHandle : BYTE; Path : TPathName;
  247.                                                VAR NewDirectoryHandle : BYTE; VAR OutPath : TPathName) : WORD;
  248.  
  249.     function    ConvertPathToDirectoryEntry   (DirectoryHandle : byte; Path : TPathName; var VolumeNumber : byte;
  250.                                                var DirectoryEntry : longint) : word;
  251.  
  252.     function    MapDirectoryNumberToPath      (VolumeNumber : byte; DirectoryEntry : longint;
  253.                                                NameSpace : byte; var Path : TPathName) : word;
  254.  
  255.     FUNCTION    GetOriginalLetter             (OldDirectoryHandle : BYTE; ConnectionID : WORD;
  256.                                                VAR DriveLetter : CHAR) : WORD;
  257.  
  258.     PROCEDURE   ConvertDots                   (Path : TPathName; VAR OutPath : TPathName);
  259.  
  260.     FUNCTION    _NWMapWildPath                (Path : TPathName; VAR OutPath : TPathName) : BYTE;
  261.  
  262.     FUNCTION    GetCurrentDrive : BYTE;
  263.  
  264.     procedure   SetCurrentDrive (Drive : byte);
  265.  
  266.     function    GetFirstNetworkDrive : byte;
  267.  
  268.     procedure   AllocateStandardBuffers;
  269.  
  270.     procedure   DeAllocateStandardBuffers;
  271.  
  272.     procedure   InitStandardBuffers;
  273.  
  274.     DESTRUCTOR  Done; VIRTUAL;
  275.  
  276.     {***********************}
  277.     {** DUPLICATE ENTRIES **}
  278.     {***********************}
  279.  
  280.     FUNCTION    ReadPropertyValue              (BinderyObjectName : TObjectName; BinderyObject : OT_BinderyType;
  281.                                                 PropertyName : TPropertyName; SegmentNumber : WORD;
  282.                                                 VAR PropertyValue : TPropertyValue; VAR MoreSegments,
  283.                                                 PropertyFlags : BYTE) : WORD;
  284.  
  285.     FUNCTION    AllocTemporaryDirectoryHandle  (DirectoryHandle : BYTE; DirectoryPath : TPathName;
  286.                                                 DriveLetter : CHAR; VAR NewDirectoryHandle,
  287.                                                 EffectiveRightsMask : BYTE; MapDrive : boolean) : WORD;
  288.  
  289.     FUNCTION    GetDriveInformation            (DriveNumber : BYTE; VAR ConnectionID : WORD;
  290.                                                 VAR DirectoryHandle : BYTE) : BYTE;
  291.  
  292.     FUNCTION    GetDefaultConnectionID : WORD;
  293.  
  294.     FUNCTION    GetPreferredConnectionID : WORD;
  295.  
  296.     PROCEDURE   SetPreferredConnectionID       (ConnectionID : WORD);
  297.  
  298.     FUNCTION    DeallocateDirectoryHandle      (DirectoryHandle : BYTE) : WORD;
  299.  
  300.     FUNCTION    GetNetwareShellVersion         (VAR MajorVersion, MinorVersion,
  301.                                                 RevisionLevel, ShellType : BYTE) : WORD;
  302.  
  303.     FUNCTION    GetDirectoryPath               (DirectoryHandle : BYTE; VAR DirectoryPath : TPathName) : WORD;
  304.  
  305.     FUNCTION    GetDirectoryHandle             (DriveNumber : BYTE) : BYTE;
  306.  
  307.     FUNCTION    IPXInitialise : WORD;
  308.  
  309.     function    GetConnectionNumber : longint;
  310.  
  311.     FUNCTION    ScanBinderyObjectTrusteePaths  (ObjectID : OT_BinderyID;
  312.                                                 VolumeNumber : BYTE;
  313.                                                 VAR SequenceNumber : WORD;
  314.                                                 VAR TrusteeAccessMask : BYTE;
  315.                                                 VAR TrusteePathName : TPathName) : WORD;
  316.  
  317.  
  318.     {*****************}
  319.     {*** VLM CALLS ***}
  320.     {*****************}
  321.  
  322.     function _CONNNameLookup (ConnectionHandle : word;
  323.                               var LookupName : TObjectName) : word;
  324.  
  325.     function GetDefaultConnectionHandle (var ConnectionHandle : word) : word;
  326.  
  327.     function GetPrimaryConnectionHandle (var ConnectionHandle : word) : word;
  328.  
  329.     function SetPrimaryConnectionHandle (ConnectionHandle : word) : word;
  330.  
  331.   end;
  332.  
  333. function GetTPAPIVersion : String;
  334.  
  335.